package ar.com.ctrln.persistence.model.compra;

import java.text.SimpleDateFormat;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.Cascade;
import org.hibernate.annotations.CascadeType;

import ar.com.ctrln.persistence.model.insumo.Insumo;

@Entity
@Table(name="PEDIDO_COMPRA")
public class PedidoCompra {
	
	public static final String ESTADO_PENDIENTE = "Pendiente";
	public static final String ESTADO_REALIZADO = "Realizado";
	public static final String ESTADO_RECHAZADO = "Rechazado";
	public static final String ESTADO_CANCELADO = "Cancelado";

	@Transient
	SimpleDateFormat sdf=new SimpleDateFormat("dd MMM yyyy");
		
	@Id
	@GeneratedValue
	@Column(name="id_pedido")
	private long id;
		
	@Column
	private Date fechaAlta;
	
	@Column
	private Date fechaPref;
	
	@Column
	private Date fechaAprob;
	
	@Column
	private String estado;
	
	@Column
	private String indicaciones;
		
	@Column
	private int cantidad;
			
	@ManyToOne
	@JoinColumn(name = "id_insumo")
	@Cascade(CascadeType.ALL)
	private Insumo insumo;

	public PedidoCompra(long id, Date fechaAlta, Date fechaPref,
			Date fechaAprob, String estado, String indicaciones, int cantidad,
			Insumo insumo) {
		super();
		this.id = id;
		this.fechaAlta = fechaAlta;
		this.fechaPref = fechaPref;
		this.fechaAprob = fechaAprob;
		this.estado = estado;
		this.indicaciones = indicaciones;
		this.cantidad = cantidad;
		this.insumo = insumo;
	}

	public PedidoCompra() {
		super();
		// TODO Auto-generated constructor stub
	}

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public Date getFechaAlta() {
		return fechaAlta;
	}
	
	public String getFechaAltaFormat() {
		return sdf.format(fechaAlta);
	}

	public void setFechaAlta(Date fechaAlta) {
		this.fechaAlta = fechaAlta;
	}

	public Date getFechaPref() {
		return fechaPref;
	}
	
	public String getFechaPrefFormat() {
		return sdf.format(fechaPref);
	}

	public void setFechaPref(Date fechaPref) {
		this.fechaPref = fechaPref;
	}

	public Date getFechaAprob() {
		return fechaAprob;
	}

	public void setFechaAprob(Date fechaAprob) {
		this.fechaAprob = fechaAprob;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public String getIndicaciones() {
		return indicaciones;
	}

	public void setIndicaciones(String indicaciones) {
		this.indicaciones = indicaciones;
	}

	public int getCantidad() {
		return cantidad;
	}

	public void setCantidad(int cantidad) {
		this.cantidad = cantidad;
	}

	public Insumo getInsumo() {
		return insumo;
	}

	public void setInsumo(Insumo insumo) {
		this.insumo = insumo;
	}


		
}

